package com.loong.common.alipay.param;

import com.alibaba.fastjson.annotation.JSONField;
import com.alipay.api.domain.GoodsDetail;
import com.loong.common.validator.group.CommonValidate;
import lombok.*;

import javax.validation.constraints.NotBlank;

/**
 * @Description:
 * @Author: 刘群
 * @Date: 2020/10/12 16:55
 */
@Builder
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class RefundParam {

    /**
     * 需要退款的金额
     */
    @NotBlank(message = "退款金额必选",groups = {CommonValidate.class})
    @JSONField(name = "refund_amount")
    private String refundAmount;

    /**
     * 商户订单号
     */
    @JSONField(name = "out_trade_no")
    private String outTradeNo;

    /**
     * 支付宝交易号
     */
    @JSONField(name = "trade_no")
    private String tradeNo;

    /**
     * 订单退款币种信息
     */
    @JSONField(name = "refund_currency")
    private String refundCurrency;

    /**
     * 退款的原因说明
     */
    @JSONField(name = "refund_reason")
    private String refundReason;

    /**
     * 标识一次退款请求
     */
    @JSONField(name = "out_request_no")
    private String outRequestNo;

    /**
     * 操作员编号
     */
    @JSONField(name = "operator_id")
    private String operatorId;

    /**
     * 商户的门店编号
     */
    @JSONField(name = "store_id")
    private String storeId;

    /**
     * 商户的终端编号
     */
    @JSONField(name = "terminal_id")
    private String terminalId;

    /**
     * 退款包含的商品列表信息
     */
    @JSONField(name = "goods_detail")
    private GoodsDetail goodsDetail;

    /**
     * 银行间联模式下有用
     */
    @JSONField(name = "org_pid")
    private String orgPid;
    /**
     * 查询选项
     */
    @JSONField(name = "query_options")
    private String[] queryOptions;
}
